return (n1>n2?n1:n2) 什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/25 21:00:19
int max(int n1,int n2)
{ return (n1>n2?n1:n2)
中的n1>n2?n1:n2什么意思?为什么这样就能返回最大值? 中间的问号是什么意思?还有n1n2中间的:又是什么意思?他们怎么用,请举些例子,谢谢···

n1>n2?n1:n2 是一个选择表达式,意思是如果n1>n2则返回n1,否则返回n2,也就是返回了两者中的最大值。
?和:是选择表达式的固定符号。

这是问号表达式。相当于一条if语句。这里n1>n2?n1:n2换车if就是
if n1>n2
return n1;
else
return n2;

条件运算符!
(表达式0)?(表达式1):(表达式2)
整个运算结束后,会返回一个值(表达式1或者表达式2),具体什么值要看表达式0,如果为真,返回表达式1;如果假,返回表达式2;
这个?和:是人家定义语言时固定的,至于为什么,那要问人家了!
例子:
int a =1;
int b=(a==1)?2:3;
//此时b=2

a=0;
b=(a==1)?2:3;
//此时b=3

先执行n1>n2,如果成立,那n1就是结果值,如果n2>n1则n2 为结果值

如果n1>n2那么就返回n1
如果n1<=n2就返回n2

以上答案都正确